﻿///*
// * ParallelObservableCollection
// * provides support for multithread environment
// * 
// * created by: asida@centrum.cz
// * 
// * initial implementation: 15.3.2012
// * last updated:
// */
//using System;

//using System.Collections;
//using System.Collections.Generic;
//using System.Collections.Specialized;
//using System.Collections.ObjectModel;
//using System.Windows.Threading;

//namespace uhul
//{




//  public class ParallelObservableCollection<T> : ObservableCollection<T>
//  {




//    protected override void InsertItem(int index, T item)
//    {
//      InsertItemWithAsync(index, item, null);
//    }




//    private void InsertItemWithAsync(int index, T item, DispatcherTimer timer)
//    {

//      if (timer != null)
//        timer.Stop();

//      try
//      {
//        base.InsertItem(index, item);
//      }
//      catch (Exception e)
//      {
//        DispatcherTimer tmp = new DispatcherTimer();

//        tmp.Tick +=
//        delegate(object s, EventArgs args)
//        {
//          InsertItemWithAsync(index, item, tmp);
//        };

//        tmp.Interval = TimeSpan.FromMilliseconds(200);
//        tmp.Start();
//      }

//      //counterPanel.MouseLeftButtonDown +=
//      //    delegate(object s, MouseButtonEventArgs args)
//      //    {
//      //      if (timer.IsEnabled) timer.Stop(); else timer.Start();
//      //    };


//    }

  
//  }

//}
